#include "stdafx.h"

namespace classifier_test
{

stream_classifier::stream_classifier()
{
}

stream_classifier::stream_classifier(const stream_classifier& Val)
{
	if (Val.BaseClassifier.get() != 0) BaseClassifier = Val.BaseClassifier->clone();
}

void stream_classifier::serialize(serializer& Serializer)
{
	classifier_common::serialize(Serializer);
	Serializer("BaseClassifier", BaseClassifier);
}

classifier* stream_classifier::get_base_classifier() const
{
	return &*BaseClassifier;
}

void stream_classifier::set_base_classifier(classifier* Val)
{
	BaseClassifier = Val->clone();
}

void stream_classifier::train(subarray<const stream_record* const> Data)
{
	for (int I = 0; I < Data.size(); I++) train(*Data[I]);
}

discr_value stream_classifier::classify(const stream_record& Record) const
{
	array<double> P;
	estimate(Record, P);
	return max_element(P.begin(), P.end()) - P.begin();
}

int stream_classifier::get_concept_count() const
{
	return 0;
}

}
